`
https://leetcode.cn/problems/kth-missing-positive-number/
`

/**
 * @param {number[]} arr
 * @param {number} k
 * @return {number}
 */
var findKthPositive = function (arr, k) {
  const n = arr.length
  // 没有缺少的情况
  if (arr[n - 1] === n) return n + k

  let left = -1, right = n
  while (left + 1 < right) {
    const mid = left + Math.floor((right - left) / 2)
    // arr[i] - (i + 1) 就是当前位置已经缺少的数字个数
    // 找到第一个 >= k 的位置
    if (arr[mid] - (mid + 1) >= k) {
      right = mid
    } else {
      left = mid
    }
  }
  // right + 1 就是当前位置原本的数，再加 k - 1 个就是缺少的第 k 个数
  return right + k
};